[AppleScript] スクリプト実行時に引数を指定する方法
スクリプトに引数を渡す
今回はスクリプト実行時に引数を渡す方法と、その引数をスクリプト内で使用する方法を紹介します。
コマンドラインから実行
AppleScript をコマンドラインから実行するには osascript
というコマンドを使用します。
実行
osascript sample.scpt
引数ありで実行
osascript sample.scpt "Feel, don't think."
osascript
コマンドは OSA (Open Scripting Architecture) と呼ばれる機構に対応したスクリプトを実行するためのコマンドです。
AppleScript や JavaScript が対応しています。
このコマンドを使用してスクリプトファイル名の後に引数を書くことで、そのスクリプトに引数を渡すことができます。
引数はスペース区切りで複数指定することもできます。
run script コマンドから実行
以前紹介した run script コマンド では、with parameters
というパラメータを指定することで引数を渡すことができます。
run script file sample.scpt with parameters {"You were the chosen one!"}
with parameters には リスト を指定します。
カンマ区切りで複数の引数を指定することもできます。
{"arg1", "arg2", "arg3"}
スクリプト内での使用方法
スクリプト内で引数を受け取るには run
ハンドラの後に リストの変数 を指定します。
on run argv display dialog (item 1 of argv) end run
変数名に決まりはなさそうでしたが、C 言語にならって argv
とするのが通例のようでした。
リストの要素を取得するには item n of <リスト変数>
とします。
n
はリストのインデックスで、先頭要素のインデックスは 1 です。
run ハンドラはスクリプト実行時に呼ばれるハンドラです。
これまでのサンプルでは run ハンドラは書いていませんでしたが、実行していたスクリプトは暗黙的に run ハンドラ内で呼び出されています。
また、以下のようにリストの要素数を調べることで、引数ありで実行されたかどうかを判断することができます。
on run argv if (count of argv) > 0 then -- 引数ありの場合の処理 else -- 引数なしの場合の処理 end if end run
まとめ
- コマンドラインから実行の場合は osascript を使う
- 引数はスペース区切り
- run script コマンドから実行の場合は with parameters を使う
- 引数はリスト
- スクリプト内で引数を使用する場合は run ハンドラ の引数(リスト変数)を使う
リンク
ミレニアム・ファルコン製作日記 #21
21 号 表紙
パーツ
成果
今回の作業は以下の 1 つでした。
- クッションパッドを接着する
前回、前々回に作成した通路の側面にクッションパッドを取り付けました。
8 つのパッドを接着しただけなので作業ボリュームはかなり少なめ。
ここ最近の軽めの作業は何かの前兆でしょうか?
外殻フレーム&プレートを組み立てたいなー
それではまた次回。
May the Force be with you!